Echo cancellation is a very good way to remove undesirable echo in communication systems. FIG. 1 illustrates a block diagram of a transmission network employing a conventional echo canceller. The echo canceller 200 is connected to a digital network 100 and a hybrid 230 via unidirectional paths 203 and 205. The dashed lines in connections 203 and 205 are used to indicate that the connections may be of a sufficient length to cause an echo signal to be subjectively annoying. Such an echo originates at hybrid 230 which is connected to a telephone S2, via path 202.
A widely used adaptation algorithm for updating the coefficients vector in the echo canceller 200 is illustrated in FIG. 2. This adaptation algorithm is a normalized LMS (NLMS) algorithm 210 given by:                                           h                          k              +              1                                =                                    h              k                        +                                          a                                                      "LeftDoubleBracketingBar"                                          x                      k                                        "RightDoubleBracketingBar"                                    2                                            ·                              e                k                            ·                              x                k                                                    ,                  xe2x80x83                ⁢        with                            (        1        )                                          e          k                =                                            x              k              T                        ·                          (                              g                -                                  h                  k                                            )                                +                      n            k                                              (        2        )                                                                    d              k                        =                                                            x                  k                  T                                ·                g                            +                              n                k                                              ,                ⁢                  xe2x80x83                                    (        3        )            
where hk is the echo canceller coefficient-vector 212, xk is the input vector, ek is the residual echo, dk is the reference echo, 0 less than xcex1 less than 2 is a scalar that controls the stability and convergence rate, ∥xk∥2 is the norm of the input vector xk, g is the actual echo path coefficient vector 214, and nk is additive noise (or near-end speech in the case of double talk).
The choice of xcex1 is critical for good performance of the echo canceller 200. A small xcex1 value will ensure small misadjustment in the steady state and is needed for noise insensitivity. However, a small xcex1 value brings about low convergence speed. A large xcex1 value will in general provide faster convergence and better tracking capabilities at the cost of higher excess mean-squared error in the steady state. As a result, the appropriate choice of xcex1 is a major issue for suitable adaptation in the NLMS algorithm 210.
In prior literature, great efforts have been made to control automatic adjustment of the convergence rate (including echo path change and double talk detection). In D. L. Duttweiler, xe2x80x9cA twelve-channel digital echo canceller,xe2x80x9d IEEE Trans. On Communications, Vol. COM-26, No. 5, pp. 647-653, May 1978, the Geigel algorithm is presented for double talk detection. The Geigel algorithm compares the magnitude of the current sample of dk with a current value of xmax,k. If the magnitude of dk is least xe2x88x926 dB higher than xmax,k, then double talk is determined to be present. The Geigel algorithm is simple and fast. However, when the magnitude of dk is xe2x88x926 dB lower than xmax,k during double talk, the Geigel algorithm fails to detect the double talk. The Geigel algorithm is also sensitive to near-end noise interference.
Other than the Geigel algorithm, many other methods based on correlation are known initiated for automatic adaptation and double talk detection/echo path change detection. In F. Casco et al., xe2x80x9cA variable step size NLMS algorithm,xe2x80x9d IEICE Trans. Fundamentals, Vol. E78-A, No. 8, pp. 1004-1009, August 1995, a variable step size LMS FIR adaptive filter algorithm is proposed. In this algorithm, the step size adjustment xcex1 is controlled by the correlation between the residual echo ek and the reference echo dk. However, the effectiveness of this algorithm has only been proven with a white noise input. K. Fujii and J. Ohga, xe2x80x9cDouble-talk detection method with detecting echo path fluctuation,xe2x80x9d Electronics and Communications in Japan, Part 3, Vol. 78, No. 4, pp. 82-93, 1996, proposes using the normalized cross correlation between the reference echo dk and the estimated echo                               y          k                ⁡                  (                                    x              k              T                        ·                          h              k                                )                                    (        4        )            
for discriminating double talk from the echo path change. With this method, it is assumed that in case of echo path change, the normalized cross correlation between dk and yk approaches zero while in case of double talk, the corresponding cross correlation approaches one. By observing the cross correlation behavior, double talk can be discriminated from the echo path change. There are, however, two problems with this method. First, when the echo path changes proportionally in magnitude, the normalized cross correlation may approach one or be larger than one, instead of zero. Second, in the case of double talk, the normalized correlation between the near end speech and the estimated echo might approach one (instead of the assumed zero) in a certain sample period, which makes it even harder to use the corresponding cross correlation for differentiation of double talk from echo path change.
As discussed above, there have been numerous attempts to design an effective echo canceller utilizing cross correlation. However, despite numerous efforts to perform adaptive filtering based on cross correlation information, there is no evidence that these adaptive filtering techniques may be successfully applied to methods for an NLMS echo cancellation purposes.
The present invention is directed to a simple and fast technique which does not use cross correlation information.
The basic idea of the invention is to alternate adaptation in the NLMS algorithm between slow mode, aggressive mode and inhibition mode according to different echo canceller status. During initial conversation, the NLMS algorithm is in an aggressive mode to ensure fast convergence. After convergence, the NLMS algorithm switches to a slow mode for lower residual echo return. Whenever an increase of residual echo caused by either double talk or echo path change is detected, the current adaptive filter coefficients are retained and then updated in the aggressive mode. The decision as to which echo estimation (the response of the retained filter or the response of the aggressively adapted filter) is subtracted from the reference echo for echo cancellation within a short detection delay period is determined according to the Geigel algorithm. If double talk is detected according to the Geigel algorithm within the short period, then the retained filter taps are applied to yield the residual echo. Otherwise, the aggressively adapted filter taps are applied to yield the residual echo. In order to decide more precisely whether double talk occurs or echo path change occurs, within the short period of Geigel detection, the current residual echo produced by the aggressively adapted filter is compared with the residual echo produced by retained filter. If the short-term averaged residual echo yielded by the aggressively adapted filter is always lower than the retained filter output, then it is determined that echo path change has occurred. The system is then updated with the aggressive mode output and switches to aggressive mode adaptation until a new convergence is achieved. Otherwise, it is determined that the residual echo increase is caused by double talk. The current filter taps are then updated with the retained filter taps and the inhibition (adaptation-frozen) mode is chosen and maintained until the error signal (residual echo) again decreases within a range of the pre-change value.